package algoGenetic;

import java.util.*;

public class TestMotGenetique {
	
	/**
	 * Nombre de solutions à chaque génération
	 */
	static final int POP = 500;
	
	/**
	 * Nombre de solution passant la sélection à chaque génération
	 */
	static final int SELECT = 25;
	
	/**
	 * Canal utilisé pour les entrées utilisateurs en console
	 */
	static Scanner sc = new Scanner(System.in);
	
	public static void main(String [] args) {
		System.out.println("Saisissez le mot mystère");
		MotGenetique.initialisation(sc.next());
		//Génère une population de départ
		LinkedList<Genome> individus = new LinkedList<Genome>();
		for (int i=0; i<POP; i++) {
			individus.add(new MotGenetique());
		}
		MotGenetique bestSolution;
		int g=0;
		do {
			System.out.println("Génération n° "+g);
			Population.generation(individus, POP, SELECT);
			bestSolution = (MotGenetique) Collections.max(individus);
			System.out.println(bestSolution);
			g++;
		} while (!bestSolution.isFit());
		
	}

}
